package com.zjcloud.jwgl.mapper;

import java.util.List;
import com.zjcloud.jwgl.domain.AcScheduleStatistics;

/**
 * 排课结果统计Mapper接口
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public interface AcScheduleStatisticsMapper 
{
    /**
     * 查询排课结果统计
     * 
     * @param id 排课结果统计主键
     * @return 排课结果统计
     */
    public AcScheduleStatistics selectAcScheduleStatisticsById(Long id);

    /**
     * 查询排课结果统计列表
     * 
     * @param acScheduleStatistics 排课结果统计
     * @return 排课结果统计集合
     */
    public List<AcScheduleStatistics> selectAcScheduleStatisticsList(AcScheduleStatistics acScheduleStatistics);

    /**
     * 新增排课结果统计
     * 
     * @param acScheduleStatistics 排课结果统计
     * @return 结果
     */
    public int insertAcScheduleStatistics(AcScheduleStatistics acScheduleStatistics);

    /**
     * 修改排课结果统计
     * 
     * @param acScheduleStatistics 排课结果统计
     * @return 结果
     */
    public int updateAcScheduleStatistics(AcScheduleStatistics acScheduleStatistics);

    /**
     * 删除排课结果统计
     * 
     * @param id 排课结果统计主键
     * @return 结果
     */
    public int deleteAcScheduleStatisticsById(Long id);

    /**
     * 批量删除排课结果统计
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteAcScheduleStatisticsByIds(Long[] ids);

    /**
     * 根据任务ID查询统计信息
     * 
     * @param taskId 任务ID
     * @return 统计信息
     */
    public AcScheduleStatistics selectStatisticsByTaskId(Long taskId);

    /**
     * 根据学期查询统计列表
     * 
     * @param semester 学期
     * @return 统计列表
     */
    public List<AcScheduleStatistics> selectStatisticsBySemester(String semester);

    /**
     * 查询最近的统计记录
     * 
     * @param limit 记录数量
     * @return 统计列表
     */
    public List<AcScheduleStatistics> selectRecentStatistics(Integer limit);

    /**
     * 根据任务ID删除统计信息
     * 
     * @param taskId 任务ID
     * @return 结果
     */
    public int deleteStatisticsByTaskId(Long taskId);
    
    /**
     * 批量根据任务ID删除统计信息
     * 
     * @param taskIds 任务ID数组
     * @return 结果
     */
    public int deleteStatisticsByTaskIds(Long[] taskIds);
}